import CusEventTypes from './Configs/EventConfig';

export default class EventSystem {
    static onBeforTakeDamage(callback: (data: DamageEventData) => void) {
        se.on(CusEventTypes.onBeforTakeDamage, (data: DamageEventData) => {
            callback(data);
        });
    }

    static onBeforApplyAttack(callback: (data: DamageEventData) => void) {
        se.on(CusEventTypes.onBeforApplyAttack, (data: DamageEventData) => {
            callback(data);
        });
    }

    static onTakeDamage(callback: (data: DamageEventData) => void) {
        se.on(CusEventTypes.onTakeDamage, (data: DamageEventData) => {
            callback(data);
        });
    }

    static onTakeAttack(callback: (data: DamageEventData) => void) {
        se.on(CusEventTypes.单位受到攻击伤害, (data: DamageEventData) => {
            callback(data);
        });
    }

    static 受到暴击(callback: (data: DamageEventData) => void) {
        se.on(CusEventTypes.单位受到暴击, (data: DamageEventData) => {
            callback(data);
        });
    }

    static 闪避攻击(callback: (data: DamageEventData) => void) {
        se.on(CusEventTypes.单位闪避攻击, (data: DamageEventData) => {
            callback(data);
        });
    }

    static 受到治疗(callback: (data: DamageEventData) => void) {
        se.on(CusEventTypes.单位受到治疗, (data: DamageEventData) => {
            callback(data);
        });
    }
    static 单位死亡(cb: (d: DamageEventData) => void) {
        se.on(CusEventTypes.单位死亡, (data: DamageEventData) => {
            cb(data);
        });
    }
    static 受到致命伤害(cb: (d: DamageEventData) => void) {
        se.on(CusEventTypes.受到致命伤害, (data: DamageEventData) => {
            cb(data);
        });
    }
}
